package com.hpl.singletonmode.singleton;

/**
 * 懒汉模式（线程安全,加synchronized关键字）
 * <p>
 * 此方法是最简单又有效的方法，不过对性能上会有所损失。
 * 比如两个线程同时调用这个实例，其中一个线程要等另一个线程调用完才可以继续调用。
 * 而线程不安全往往发生在这个实例在第一次调用的时候发生，当实例被调用一次后，线程是安全的，所以加synchronized就显得有些浪费性能。
 * </p>
 * @author hpl
 * @since 2023/1/16
 */
public class SingletonLazySafety {

    private static SingletonLazySafety instance;

    private SingletonLazySafety(){

    }

    @SuppressWarnings("all")
    public static synchronized SingletonLazySafety getInstance(){
        if (instance == null){
            instance = new SingletonLazySafety();
        }
        return instance;
    }
}
